import 'package:event_bus/event_bus.dart';
import 'package:fig/models/master_media_spider.dart';
import 'package:fig/sqlite/table_master_config.dart';

class Config {
  const Config();

  // 消息总线
  static EventBus eventBus = EventBus();

  Config.init(int selectSpider, String spiderUrl, bool autoSpider) {
    _selectSpider = selectSpider;
    _spiderUrl = spiderUrl;
    _autoSpider = autoSpider;
  }

  static List<MasterMediaSpider> spiderPool; // 爬虫库
  static int _selectSpider; // 选择的爬虫
  static String _spiderUrl; // 爬取的地址
  static bool _autoSpider; // 是否自动爬取
  static bool spiderRunning = false; // 爬虫是否在运行

  // 设置界面上的调用
  static setSpider(int poolId) async {
    _selectSpider = poolId;

    spiderPool.forEach((spiderConfig) {
      if (spiderConfig.id == poolId) {
        _spiderUrl = spiderConfig.apiUrl;
      }
    });

    TableConfig().updateSelectPool(poolId);
  }

  static int selectedSpider() {
    return _selectSpider;
  }

  static setAutoSpider(bool value) async {
    _autoSpider = value;
    await TableConfig().updateAutoSpider(value);
  }

  static bool autoSpider() {
    return _autoSpider;
  }

  // 启动爬虫的时候使用
  static String spiderUrl() {
    return _spiderUrl;
  }
}
